Video system

ABSTRACT

A network node apparatus is disclosed for the capture, storage and replay of video data at separate respective nodes of a communications network arranged to operably couple the node apparatus. The node apparatus may include a video capture node operable to capture video data and to transmit captured data via the communications network to a video storage node. The video storage node is arranged to store captured video data, and to transmit stored data via the communications network to a video replay node which renders an image therefrom. The video storage node transmits video data to the video replay node only if the content of a transmit buffer therein matches or exceeds a predetermined lower content value and the content of a receive buffer in the replay node does not exceed a predetermined upper content value.

The present invention relates to apparatus for use in the transmissionof video data using a communications network, and to a communicationsnetwork including such apparatus.

Computer networking permits remote retrieval by a given network computerof video data stored in a separate other computer of the same or anothernetwork, or stored in a video storage means access to which iscontrolled by a separate other network computer. In particular,transmission of video data across a computer network or Internet forimmediate rendering/playback at a receiving computer is possible. Insuch situations, the receiving computer serves merely to receive videodata and to substantially immediately render/play such received videodata without storing the whole of, or any substantial part of, theretrieved video data before rendering.

However, the transmission of video data cross computer networks forimmediate rendering at a destination computer must take due account notonly of the transmission characteristics of the network across which thedata is transmitted but also the methods by which received video data isrendered at the destination computer.

For example, the network may support high data transmission rates, yetthe destination computer may only be compatible with lower datatransmission rates comparable to the video frame rate of the videoimages to be rendered thereby. Accordingly, immediate video rendering ata destination computer typically requires a network communicationssystem in which the node sending video data must closely co-ordinatewith the node receiving that video data to ensure that video data isreceived at a rate most suited to the video renderer at the receivingnode. Synchronous communications networking is typically employed tothis end. The disadvantage of this lies in the need for synchronisinghardware/software to put effect to the desired synchronisation, and alsooften the reduction of data transmission rates to rates below thosesupportable by the network but which are suited to the video renderer.

The alternative is the so-called asynchronous network transmissionmethod in which a sending node may transmit data to areceiver/destination node without warning, meaning that the receivermust be prepared to accept data at any time during which the sender nodeis able to send such data. Packet switching is commonly used to thisend. This technique segments video data into packets and each suchpacket is transmitted via the network to a predetermined destinationnode. Separate packets of a given data stream may reach the sameintended destination node via different routes and thus may experiencediffering network transmission delays. The variability in packettransmission delays leads to video frame jitter at the video renderer ofthe destination node as video data packets are received at an irregularrate leading to irregular (i.e. “jittery”) rendering of video frames. Tocombat frame jitter, data transmission across a network is typicallyperformed at a rate much lower than the rates sustainable by the networkitself. This permits easy regulation of the rate of transmission acrossthe network—either through increases or decreases therein—so as toenable transmission of video data at rates which allow the renderer atthe receiving node to render video frames at fixed intervals therebyproviding smooth video motion pictures irrespective of the quantity ofdata required to be transmitted across the network for a given frame(this being a variable quantity).

To regulate the flow of video data across a network in this way requiresregular and complex exchanges of control signals between the sendingnode and the receiving node. These control signals control theadjustment of data transmission rates from the sending node to thereceiving node and are typically generated by dedicated software and/orhardware.

Thus, both synchronous and asynchronous network transmission systemscurrently require means dedicated to the regular interchange oftransmission control signals between a data sending node and a datareceiving node. This is due in particular to the special requirements ofimmediate video rendering across a computer network. Furthermore, thesetransmission control methods typically result in data transmission rateswhich fall below data rates supportable by a typical communicationsnetwork interconnecting the transmitting and receiving nodes inquestion.

The present invention aims to address at least some of theaforementioned deficiencies in the prior art.

At its most general, the present invention proposes the asynchronoustransmission of video data across a communications network from asending node to a receiving node whenever the receiving node is able toreceive such data. This may be achieved by providing intermediateretention/buffering of video data received at the receiving node fromthe sending node prior to subsequent storage of the received data orrendering/playing of video images using the received data depending uponthe function of the receiving node (i.e. storage function or renderingfunction). This effectively obviated the need to match the datatransmission characteristics of the communications network to the videostorage or rendering characteristics of the receiving node.Consequently, the network may be employed at its optimum datatransmission rate while the storage or rendering of video images at thereceiving node may take place at any suitable rate e.g. at a framerendering rate substantially free of frame jitter or a forced reductionin frame rates or data transmission rates.

Typical network transmission means often support data transmission rateswhich are higher than the rate at which video rendering means typicallydemand video data for use in rendering images or higher than a storagenode is typically able to complete the storage of received video data.This means that according to the present invention one may keep areceiver node fully supplied/fed with video data during the entirety ofthe rendering of, or storage of, the video sequence in question. Thehigher rate of data transmission from the sending node ensures thatsupply of video data exceeds the demand thereof by the renderer, orstorage means, and effectively keeps the intermediate buffer of thereceiver node “topped-up”, only running dry when the video sequence inquestion comes to its end.

It is to be understood that “video” or “video data” herein refers notonly to video image data but also to video sound data (i.e. audio-visualdata).

The invention may also provide the intermediate retention/buffering ofvideo data selected from a transmitting node immediately prior to itstransmission across the network to the receiving node. This obviates theneed to match the video data retrieval/supply rates, in the transmittingnode, to either the data transmission rate of the network or the ratesat which data is demanded by the video renderer, or storage means, ofthe receiving node. Indeed, since data retrieval rates are not directlydictated by data demand rates at the receiver node, one may interruptdata transmission by e.g. momentarily disconnecting the receiver nodefrom the network without effecting the retrieval of video data or therendering of retrieved video data provided that reconnection occursbefore the buffer of the receiver node empties or the buffer of thetransmitting node overflows.

This permits greater efficiency and versatility in not only how one usessuch networks, but also in the performance characteristics of thenetwork node apparatus employed. That is to say, since thecharacteristics (e.g. achievable frame rates) of network nodal apparatusneed not be directly tailored to the transmission characteristics of thenetwork communications apparatus, such networks become more versatileand adaptable and permit a wider range of network nodal apparatus to beemployed, including those which might otherwise have been deemedunsuitable in the absence of the aforesaid buffering at network nodeapparatus. Similarly since the network communications apparatus mayoperate optimally, this means that shorter periods are needed for videodata transmission. Greater data transmission efficiency is achieved byfreeing the network communications apparatus for other uses in betweenperiods of non-transmission of video data.

In a first of its aspects the present invention may provide a networknode apparatus for the storage and replay of video data at separaterespective nodes of a communications network means arranged to operablycouple the node apparatus wherein the node apparatus includes:

a video storage node arranged to store video data, and to transmitstored data via the communications network means;

a video replay node arranged to receive via the communications networkmeans video data transmitted by the video storage node, and to render animage (e.g. an image alone, or an image with sound) therefrom;

wherein the video storage node has transmit buffer means for temporarilyretaining stored video data, and the video replay node has a receivebuffer means for temporarily retaining the video data received thereby,the video storage node being operable to transmit video data to thevideo replay node only if (e.g. while) the content of the transmitbuffer means matches or exceeds a predetermined lower content value andthe content of the receive buffer means does not exceed a predeterminedupper content value.

Thus, provided that the transmitter of the video storage node hassufficient content and the receive buffer of the video replay node doesnot have excessive content, the video storage node may transmit videodata without warning to the video replay node which will be able toaccept data so transmitted. This is an asynchronous transmission method.For example, the video storage node may be arranged to transmit videodata to the video replay node continuously, periodically orintermittently unless either the content of the transmit buffer means isbelow a predetermined lower content value or the content of the receivebuffer means is above a predetermined content value, whichever occursfirst. The video storage node may comprise a computer, such as apersonal computer, containing (or controlling access to) video datastorage means. Video data storage means may be the internal storagemeans of one or more computers, such as one or more computer hard drives(e.g. arranged in a RAID formation to permit multi-streaming of data),or may be external dedicated storage means such as a database.

A RAID (Redundant Array of Inexpensive Disks) is a method of combiningmultiple hard drives for making a larger, faster data access and storagesystem as is well known in the art. A RAID formation splits the storeddata between a plurality of disk drives in parallel. This permitsparallel access to multiple drives and, thus, multi-streaming of datawhereby a plurality of video replay nodes or video capture nodes mayaccess the RAID storage system in the video storage node simultaneouslyand independently. Disk redundancy is also permitted whereby, in caseone disk drive fails, the remaining disk drives may continue to functionin place of the failed disk drive. Data storage in the database may bein either in analogue or digital form such as computer hard drives (e.g.in RAID configuration) or may be upon magnetic tape or in digital videodisks or the like. For example the video storage node may comprise aserver means containing computer means, and a suitable video storagedata base such as described hereinbefore, the server means beingoperable to control the access to and retrieval of video data storedwithin the video database. Similarly, the video reply node may comprisea computer, such as a personal computer, arranged to render video imageseither via the visual display unit (VDU) thereof or via an alternativemeans of visual display controlled by the computer (e.g. the projectionapparatus of an image projection system). The video replay node mayrender video images (and sound) using a projector mounted upon thehelmet of a pilot within an aircraft simulator apparatus, it may rendera simulated image within/as a Head Up Display (HUD) within a vehiclesimulator. The rendering may employ a television, of high definition orotherwise, or may employ the use of video walls.

In the network node apparatus, the video storage node is preferablyarranged to transmit data temporarily retained in the transmit bufferthereof at the maximum data transmission rate supported by thecommunications network means.

Such data transmission may take the form of a continuous transmission ofdata, or may take the form of the intermittent or periodic transmissionof blocks, portions or segment of video data with each such block,segment or portion being transmitted at the maximum data transmissionrate supported by the communications network means in question. Thecommunication network means may comprise an Ethernet communicationsnetwork forming a Local Area Network (LAN) or a Wide Area Network (WAN).For example, the communications network means may be (or include) a 100Mbit/sec or a gigabit/sec Ethernet. Consequently, in such cases, therate of data transmission from the video storage node may be 100Mbit/set or 1 Gbit/sec respectively.

The network node apparatus may also include apparatus for capturingvideo data (e.g. image data or image and sound data) at a node separatefrom the video storage node and the video replay node, and forcommunicating the captured data to the video storage node for storagethereat. The “capturing” of video data includes the generation of videodata, or the receipt of existing video data from a video data sourcewhich is external to the network to which the network node apparatus isadapted. For example, the capturing of video data may comprise thecapture of video data generated by a video imaging device (and a soundrecording device where appropriate) such as a video camera or asimulator means for generating simulated images, or may comprise thereceipt of pre-existing video data generated independently of thenetwork node apparatus.

Thus, in addition to the video storage node and the video replay node,the network may also include a video capture node for capturing videodata representing an image (with sound data where appropriate), andarranged to transmit such video data via the communications networkmeans to the video storage node, wherein the video storage node isarranged to receive the video data transmitted from the video capturenode for the said storage thereof.

Thus, it will be appreciated that resources required for the capture,storage and replay of video data may be distributed across threerespective nodes of a communications network. This spreads thecomputational load of the system across the network nodes in questionsuch that none are required to provide the functionality provided by anyof the other of the three nodes. However, it is, of course, possiblethat any one of the video capture node, the video storage node, and thevideo replay node may also provide the functionality provided by any oneof (or both of) the other of the aforementioned three nodes.

Preferably the video capture node has a transmit buffer means fortemporarily retaining the captured video data and the video storage nodepreferably also has a receive buffer means for temporarily retainingvideo data received thereby, the video capture node preferably beingoperable to transmit video data to the video storage node only if (e.g.while) the content of the transmit buffer means thereof matches orexceeds a predetermined lower content level and the content of thereceive buffer means of the video storage node does not exceed apredetermined upper content level.

Consequently, the video capture node may receive or generate video dataat a rate which differs from both the chosen rate of data transmissionacross the communication network means and the rate at which the videostorage node accepts video data for storage thereby. The transmission ofvideo data from the video capture node in this way may be continuous,periodic or intermittent. When periodic or intermittent, the datatransmitted may take the form of segments or packets of video data. Thevideo capture node may be operable to transmit video data to the videostorage node unless either the content of the transmit buffer of thevideo capture node is below the predetermined lower content value or thecontent of the received buffer of the video storage node is above apredetermined upper content value, whichever occurs first.

The video capture node is preferably arranged to transmit datatemporarily retained in the transmit buffer thereof at the maximum datatransmission rate supported by the communications network means.

Of course, other transmission rates which are less than the maximum ratesupported by the network communications means may be employed, however,it is highly preferable that the rate of data transmission employed bythe video capture node is sufficiently high to ensure that the receivedbuffer of the video storage node does not empty before the end of thevideo sequence to be stored. Furthermore, it is also preferable that therate of data transmission from the video capture node exceeds the rateof demand of such data at the video storage node thereby obviating theneed to constantly transmit video data from the former to the latter andpermitting data transmission in the form of shorter bursts of highdata-rate as opposed to longer bursts of lower data-rate.

The predetermined upper content value may correspond to the content ofthe respective receive buffer when full for example.

Thus, transmission of video data from the video capture node to thevideo storage node preferably only occurs when the receiving node hasroom to receive transmitted data and when the transmitting node hasvideo data to transmit. If this condition is not satisfied thentransmission from the video capture node to the video storage node ispreferably prevented until both the transmit buffer of the video capturenode contains image data to send and the received buffer of the videostorage node has room to receive such video data. The predeterminedlower content value may correspond to the content of the respectivetransmit buffer when empty. Of course, the predetermined upper and lowercontent levels may be other than full and empty respectively.

Preferably, each of the receive and transmit buffers of the videostorage node, the video reply node, and, if included, the video capturenode is arranged to have capacity to store at least one frame of video(e.g. with sound) data. The upper limit placed upon the storage capacityof such buffers is limited merely by the availability of memory withinthe respective network node apparatus of which the buffer(s) forms apart.

In the network node apparatus the video replay node may includetransmission control means arranged to detect when the content value ofthe receive buffer thereof matches or exceeds the predetermined uppercontent value and to communicate such detection via the network to thevideo storage node as a first detection signal.

The video storage node preferably also includes transmission controlmeans arranged to receive first detection signals from the video replaynode, to generate a second detection signal when the content value ofthe transmit buffer thereof does not exceed the predetermined lowercontent value, and to prevent video data transmission from the videostorage node to the video replay node either in response to (e.g. uponor after) receipt of the first detection signal or in response to (e.g.upon or after) generation of the second detection signal.

Where the network node apparatus includes the video capture node, thevideo storage node may include transmission control means arranged todetect when the content value of the receive buffer thereof matches orexceeds the predetermined upper content value and to communicate suchdetection via the network to the video capture node as a first detectionsignal.

Preferably, the video capture node includes transmission control meansarranged to receive first detection signal from the video storage node,to generate a second detection signal when the content value of thetransmit buffer thereof does not exceed the predetermined lower contentvalue, and to prevent video data transmission from the video capturenode to the video storage node either in response to (e.g. upon orafter) receipt of the first detection signal or in response to (e.g.upon or after) generation of the second detection signal.

The above content level is most preferably a predetermined valuecorresponding to the content of the respective receive buffer whenintermediate full and empty. The predetermined value most preferablycorresponds to the content of the receive buffer when a predeterminedportion of buffer capacity remains unoccupied wherein the predeterminedproportion is sufficient to contain video data transmitted thereto by atransmit buffer during the time interval between communication of thefirst detection signal to the transmit buffer and subsequent preventionof transmission of video data by the transmit buffer in response to thefirst detection signal.

The predetermined upper content level of a given receive buffer means ispreferably represented by a watermark stored within the buffer means.The upper content level is preferably determined in accordance firstlywith the rate at which the network node of which the buffer forms a partdepletes/empties the buffer in question, and secondly with the rate atwhich the network node from which the buffer receives video data is ableto replenish the buffer in question with video data, such that thereceive buffer has capacity to receive video data transmitted by thetransmit buffer after communication by the receive buffer of the firstdetection signal and before subsequent prevention of video datatransmission by the node to which the first detection signal wascommunicated. Overflow of the receiver buffer is thereby prevented.

Preferably the transmission control means of either (or each) of videocapture node and video storage node is operable to prevent video datatransmission therefrom to the video storage or video replay noderespectively, in response to receipt of a first detection signal aftercompletion of the transmission of video data corresponding to a wholevideo frame if transmission of such data commenced before receipt of thefirst detection signal. This prevents incomplete transmission of videoframes. The predetermined unoccupied proportion of a receive buffer maybe equal to twice the product of: the rate of video data transmissionacross the network; and, the duration of a whole video frame at thevideo renderer of the video replay node.

The network node apparatus preferably has a video replay node whichincludes video replay selection means for selecting the replay rate ofvideo images to be rendered thereby and for transmitting said selectionto the video storage node via the communications network. The videostorage node preferably also includes time-stamp control means forapplying a time-stamp to video data stored therein according to theselected video replay rate, such that video images rendered by the videoreplay node using video data with the said time-stamp are rendered atthe selected video replay rate.

The video replay selection means is preferably operable to select, inrespect of video data corresponding to a given sequence of video frames,an n-fold (n=integer) increase in the video replay rate of the givensequence to be rendered at the video replay node. In response to suchselection, the video storage node is most preferably operable to apply atime-stamp to only that video data stored therein which corresponds tothe first frame of the given sequence of video frames to be rendered,and to those subsequent frames within the given sequence which succeedsthe first frame by successive integer multiples of n frames. Only thevideo data (frames) possessing such a time-stamp are transmitted fromthe video storage node to the video replay node to be rendered. Thetime-stamp applied to such video data (frames) most preferably causesthe video data so stamped to be rendered at a constant frame rate whichis independent of the value of n. Thus, while the rate at which videoframes are rendered by the video renderer may remain constantirrespective of the value of n, an increase in replay rate may beachieved by progressing through a given sequence of video frames simplydisregarding portions of that sequence.

More generally, the time-stamp control means is preferably operable togenerate a plurality of separate time-stamps forming a temporal sequenceof time-stamps for application to video data representing a plurality ofseparate video frames forming a temporal sequence of video frames, andto apply time-stamps selected from the sequence of time-stamps to videodata representing video frames selected from the sequence of videoframes wherein: the selected time-stamps are sequentially consecutive(i.e. neighbours in the temporal sequence) and the respective selectedvideo frames are sequentially non-consecutive; or, the selected videoframes are sequentially consecutive and the selected time-stamps aresequentially non-consecutive; or, the selected time-stamps aresequentially non-consecutive and the respective selected video framesare sequentially non-consecutive.

This permits either an increase or decrease in video replay rates at thevideo replay node using the time-stamped video frames. Consecutivetime-stamps are preferably consecutive integer multiples of a singlefixed video frame period (e.g. 33.33 ms) and so indicate to the videoreplay node the time at which the rendering of the given frame within asequence of video frames is to begin. For example, an n-fold increase inthe video replay rate at the video replay node, in response to anappropriate selection via the replay selection means, is facilitated byapplying sequentially consecutive time-stamps only to those respectivenon-consecutive video frames separated from each other by n-1intermediate video frames within the sequence of video frames.

Similarly, an n-fold decrease in video replay rates may be facilitatedby applying to sequentially consecutive video frames within the sequenceof video frame only those respective non-consecutive time-stampsseparated from each other by n-1 intermediate time-stamps within thesequence of time-stamps.

Alternatively, the time-stamp control means may be operable to applysequentially non-consecutive time-stamps only to respectivenon-consecutive video frames wherein both the time-stamps and therespective video frames in question are separated from each other by nintermediate time-stamps or video frames, respectively within thesequence of time-stamps or of video frames. The result is an n-folddecimation of the rendered video data thus reducing the amount of dataand bandwidth required to transmit video data to the video replay nodeso as to render the video data at normal replay rates (e.g. the rate atwhich video frames were originally captured).

The video replay node and video storage node preferably include dataflow control means operable to control the rate of transmissiontherebetween of frames of a sequence of video frames by controlling thevideo storage node to transmit only selected frames distributed withinthe sequence, being fewer in number than the total number of frameswithin the sequence.

Selection of the distributed frames may occur by a decimation process inwhich only those frames separated from the first frame by an integermultiple of N (N=integer) frames are selected. Alternatively, decimationmay result in all but those frames separated from the first frame by aninteger multiple of N frames being so selected. The data flow controlmeans is preferably operable to control the rate of transmission of agiven sequence of video frames from the video storage to the videoreplay node according to: the rate at which frames of the sequence wererecorded/captured; the rate at which the frames are to be rendered atthe video replay node; and, the content/capacity of the receive buffermeans of the video replay node to which the video frames are to betransmitted thereby to control the content/capacity of the receivebuffer means.

Preferably, the data flow control means is operable to gather at thevideo replay node the contemporaneous rate of frame rendering thereatand content of the buffer means thereof, to transmit the gatheredinformation to the video storage node, and to reduce or increase theportion of frames to be selected at the video storage node from within asequence of video frames (e.g. by decimation) to be transmitted to thevideo replay node according to the gathered information.

Preferably the data flow control means at the video storage node isoperable to periodically increase the proportion of frames to beselected from a sequence of frames to be transmitted to the video replaynode (e.g. by periodically reducing the frame decimation rate) until thecontent value of the receive buffer of the video reply node exceeds agiven content value. Most preferably data flow control means at thevideo replay node is operable to gather and transmit the aforesaidcontemporaneous data when the content value of the receive buffer of thereplay node exceeds a given content value, the data flow control meansof the video storage node being responsive to receipt of such gatheredinformation so as to reduce to a preset value the proportion of theframes (e.g. increase frame decimation) to be transmitted to the replaynode. Preferably, the aforesaid periodic increase in the proportion offrames so selected is resumed by the data flow control means subsequentto the aforesaid reduction therein.

In this way, the data flow rate across the network may be periodicallyupdated to cause the content level of the receive buffer means of thereplay node to hover/fluctuate around a suitable given value.

The data flow means at the video storage means may be alternatively oradditionally operable to control the rate of transmission of the framesof a sequence of frames to the video replay node according to thecontent/capacity of the transmit buffer of the video storage node. Forexample, the data flow control means may increase the proportion ofvideo frames selected for transmission from the storage node (e.g.reducing decimation) if the content of the transmit buffer thereof fallsbelow a preset lower content level, or to reduce that proportion (e.g.increase frame decimation) should the content of the transmit bufferthereof exceed a preset upper content level.

The data flow control means may be operable to double the framedecimation rate of a frame sequence to be transmitted from the storagenode should the transmit buffer thereof become full. Most preferably,the data flow control means is operable to control the time-stamp meansto implement any/all of the aforementioned n-fold frame decimation stepsby applying sequentially non-consecutive time-stamps only to respectivenon-consecutive video frames wherein both the time-stamp and therespective video frames in question are separated from each other by nintermediate time-stamps or video frames, respectively, within theaforesaid sequence of time-stamps and video frames.

In preferred embodiments of the invention, the network node apparatusfurther comprises the communications network means, in addition to thenetwork nodes arranged to be operably coupled thereby, thecommunications network means being arranged to provide a communicationlink coupling each nodal apparatus to each other nodal apparatus, inuse.

Indeed, the present invention in preferred embodiments, furthercomprises the communications network means connected to the networknodes such that it operably couples the video storage node to the videoreplay node thereby placing the video storage node in asynchronouscommunication with the video replay node. This applies to embodimentscontaining the video storage and video replay nodes, and also containingthe video capture node.

It is to be understood that the term “video” used herein is to beconstrued as referring to video image data lone and to the combinationof video image data and sound data associated therewith (i.e.audio-visual data).

It is also to be understood that the invention in its first aspectprovides apparatus for the implementation of a method for the storageand replay of video data at separate respective nodes of communicationsnetwork, and the invention in further aspects includes such a methodincluding some, none or all of the preferred embodiments or alternativefeatures discussed above in respect of the invention in its firstaspect.

Accordingly, in a second of its aspects, the present invention mayprovide a method for the storage and replay of video data at separaterespective nodes of a communications network means arranged to operablycouple the nodes wherein the method includes:

storing video data at a video storage node;

temporarily retaining the stored video data in a transmit buffer of thevideo storage node; and subsequently;

transmitting the retained video data via the communications networkmeans;

receiving at a video replay node the video data transmitted by the videostorage node;

temporarily retaining the received video data in a receive buffer meansof the video replay node; and subsequently;

rendering an image (e.g. an image alone, or an image with sound) at thevideo replay node using the received video data;

wherein said transmission of video data from the video storage node tothe video replay node occurs only if (e.g. while) the content of thetransmit buffer means matches or exceeds a predetermined lower contentvalue and the content of the receive buffer means does not exceed apredetermined upper content value.

Preferably, the transmission of retained data from the storage nodeoccurs at the maximum data transmission rate supported by thecommunications network means.

This method may further include capturing at a video capture node videodata representing an image (and possibly sound data also), transmittingcaptured video data via the communications network means to the videostorage means, receiving at the video storage node the captured videodata transmitted from the video capture node for the said storagethereof.

When the method includes such video data capture, the method preferablyalso includes temporarily retaining captured video data in a transmitbuffer means of the video capture node, transmitting the retained videodata via the communications network, receiving at the video storage nodethe data transmitted by the video capture node, temporarily retainingthe received data in a receive buffer means of the video storage node,wherein the transmission of video data from the video capture node tothe video storage node occurs only if (e.g. while) the content oftransmit buffer means thereof matches or exceeds a predetermined lowercontent level and the content of the receive buffer means of the videostorage node does not exceed a predetermined upper content level.

The transmission of the retained video data from the video capture nodepreferably occurs at the maximum data transmission rate supported by thecommunications network means.

The predetermined upper content value may correspond to the content ofthe receive buffer when full, and the predetermined lower content valuemay correspond to the content of the transmit buffer when empty.

The method may also include:

detecting at the video replay node when the content value of the receivebuffer thereof matches or exceeds the predetermined upper content value,and communicating such detection via the network to the video storagenode as a first detection signal.

Accordingly, the method may further include receiving at the videostorage node a first detection signal from the video replay node,generating a second detection signal when the content value of thetransmit buffer thereof does not exceed the predetermined lower contentvalue, and preventing video data transmission from the video storagenode in response to (e.g. upon or after) upon receipt of the firstdetection signal or in response to (e.g. upon or after) generation ofthe second detection signal.

Similarly, when the method includes the aforesaid step of video datacapture, the method may also include detecting at the video storage nodewhen the content value of the receive buffer thereof matches or exceedsthe predetermined upper content value, and communicating such detectionvia the network to the video capture node as a first detection signal.

Once more, in such cases, the method may yet further include receivingat the video capture node a first detection signal from the videostorage node, generating a second detection signal when the contentvalue of the transmit buffer thereof does not exceed the predeterminedlower content value, and preventing video data transmission from thevideo capture node in response to (e.g. upon or after) upon receipt ofthe first detection signal or in response to (e.g. upon or after)generation of the second detection signal.

The method may include selecting at the video replay node the replayrate of video images (and sound where appropriate) to be renderedthereby, communicating that selection to the video storage node via thecommunications network, and applying a time-stamp to video data storedin the video storage node according to the said selection, such thatvideo images rendered by the video replay node using video data with thesaid time-stamp are rendered at the selected video replay rate.

The method may include asynchronously communicating between said nodesof the communications network using the communications network.

In a third of its aspects, the present invention may provide a computerprogram and/or a computer program product/carrier (e.g. disc, tape,chip) including computer code for implementing a method according to theinvention in its second aspect including some, none or all of theaforementioned preferable features or variants thereof.

Furthermore, in its third aspect, the present invention may provide acomputer network (or computers of nodal network apparatus) programmedaccording to the invention in its third aspect.

A computer network may be provided including a plurality of separatenetwork nodes each of which includes a computer programmed to implementthe method, according to the invention in its third aspect, collectivelywith a computer of one or more other of said plurality of network nodes.

The network node apparatus according to the first aspect of theinvention may be provided in which each said node apparatus a computer,such as a personal computer, separate from each of the other said nodeapparatus.

Non-limiting examples of the invention shall now be described withreference to the accompanying drawings in which:

FIG. 1 schematically illustrates software application to be implementedin the components of a computer network including a plurality ofseparate network nodes;

FIG. 2 schematically illustrates functions of an video capture node andof a video storage node, the former being in communication with thelatter via a computer network communication link;

FIG. 3 illustrates functions of a video storage node and of a videoreplay node the former being in communication with the latter via acomputer network communications link;

FIG. 4 schematically illustrates a computer network in a star networkconfiguration comprising several video capture nodes, a video storagenode, and several video replay nodes each aforesaid node being providedby a personal computer (PC);

FIG. 5 schematically illustrates a computer network arranged in a bustopology comprising a plurality of video capture and video storage nodesand a plurality of video replay nodes each provided in the form of apersonal computer arranged to communicate with video capture and videostorage nodes via the bus communications network;

FIG. 6 illustrates a data flow control application as between a videostorage node and a video replay node;

FIG. 7 schematically illustrates the calculation of a data flow controlsignal by a data flow control application.

In the figures like functional or technical features have been assignedcommon reference signs for consistency.

FIG. 1 schematically illustrates software applications to be implementedin network node apparatus of a computer network (1) for implementationof an embodiment of the present invention.

Each application may be implemented upon a separate network nodeapparatus (e.g. a node computer) and several of the applications may beimplemented upon the same network node apparatus (e.g. node computer).

The software applications include a video capture software application(2) which, when implemented upon a suitable video capture nodeapparatus, is arranged to control that node apparatus to capture videodata representing an image at least, and possibly also image and sounddata. The software applications also include a video data storagesoftware application (3) and a video replay software application (4)which, when implemented upon suitable video storage and video replaynode apparatus respectively, are arranged to control the respective nodeapparatus to store received video data and to render video images (andsound if applicable) from received video data respectively.

The video capture application (2), the video storage application (3) andthe video replay application (4) are arranged to be controlled via acentral network control application (7) when the latter is implementedupon suitable network node apparatus (e.g. a node computer). Eachsoftware application, when implemented upon a given network nodeapparatus of the network (1), communicates with other softwareapplications using a network communications apparatus (e.g. andEthernet) not shown in FIG. 1. The network communications apparatus alsoplaces a host computer (6) in communication with the central networkcontrol software application (7). The host computer serves as a means bywhich a user may control the operation of the video capture, videostorage and video replay applications remotely via the central networkcontrol application, and contains a host software application enablingthe generation of control command signals (11) compatible with thecentral network control application (7) from user command signals inputat the host computer, and enabling the generation at the host computer(6) of signals compatible with the host computer system and the userthereof from signals (12) sent to the host computer from the centralnetwork control application.

A network diagnosis software application (5) is provided for detectingand diagnosing, when implemented on suitable network node apparatus(e.g. a computer), faults occurring within the implementation of any ofthe software applications aforementioned. This application is alsoarranged to communicate with, and be controlled by, the central networkcontrol application (7).

The network diagnosis software application provides one, some or all ofthe following facilities:

-   -   (a) real-time checks that each of the software applications of        the network node apparatus is alive (i.e. operational). This is        achieved by transmission of a predetermined test message to        which the recipients software application is operable to respond        with a predetermined return message (e.g. a “ping” mechanism).        Absence of such a return message subsequent to transmission of a        test message indicates the recipient application is not        operational;    -   (b) direct monitoring of the communications to the central        control software application;    -   (c) off-line execution of tests (e.g. using simulated command        signals) of the functionality of software applications. The        response of the software application being test may be recorded.        Complicated sequences of test command signals running over many        test patterns may be executed;    -   (d) provision of diagnostic information back to the host        software application.

Each aforesaid network software application may be implemented upon aseparate network node apparatus, or several such software applicationsmay be implemented on the same network node apparatus. For example, thevideo capture software application may be implemented at the samenetwork node and using the same node apparatus (or at least differentsuitable parts of the same overall node apparatus) as the video storageapplication, as may the video replay application. Similarly, the networkdiagnosis software application and the central network controlapplication may be implemented at the same network node using the sameoverall node apparatus.

In use, the central network control software application (7) receivesuser commands (11) from the host computer (6). Upon determining thenature of the commands, the central network control application passesthe commands to those nodes of the network where the relevant softwareapplication is located. Thus, user commands (14) relevant to the videocapture application (2) are passed to the node assigned to implementthat application. Commands (20) relevant to the video storageapplication are passed to the node assigned to implement thatapplication, and commands (17) relevant to the video replay applicationare passed to the node assigned to implement video image and soundrendering.

Upon receipt of a user command (14) for the capture of video imageand/sound data, the video capture application implements image (andsound if needed) capture by suitably operating the video capture nodeapparatus. The resultant video (e.g. audio visual) data (13) capturedthereby is subsequently passed to the central network controlapplication and thence to the video storage application (signal 20) forstorage at the video storage node apparatus. Similarly, upon receipt bythe central network control apparatus of a user command (11) for thereplay/rendering of video images or sound at the video replay nodeapparatus, the network control application implements centralisedcontrol of both the video storage application and the video replayapplication—which are typically located at separate respective nodes ofthe network. A retrieval command (20) is passed from the network controlapplication to the video storage application to initiate retrieval ofstored video data thereat, and to transmit retrieved video data (19) viathe network communications apparatus back to the central network controlapplication and thence (signal 17) to the video replay application forrendering thereby. Communication of transmission control signals (18)from the video rendering application are passed (20) to the videostorage application via the network control application.

The network diagnostics application communicates with the other networkapplications via the input (16) and output (15) or signals to thecentral network control apparatus through which all control signals, andthe results thereof, are passed. Similarly, any or all diagnosticssignals (15) from the network diagnostics application, and any or all ofthe results of user command signals and transmission control signals maybe passed (signal 12) back to the host application (6) for review by theuser. All communication between node applications located at separatenetwork node apparatus is done via the network communications apparatus.For example, where each of the node applications illustrated in FIG. 1is located at a separate respective network node, then the means ofcommunication between any one application and any other application isthe network communications apparatus. Thus, signals (11) to (20) eachpass between network nodes using the network communications apparatus insuch a case.

The video capture node apparatus may comprise a video camera forgenerating contemporaneous video image and sound data, either digital oranalogue in format, or may comprise means for generating image datarepresenting a simulated image or representing a display image to bedisplayed upon any form of display means (e.g. a radar screen, a cockpitdisplay image etc). The video capture node may receive such video imagedate (and associated sound data where appropriate) generated externallyof the network (1).

The video storage node apparatus may comprise a computer system (e.g.one or more personal computers), possessing a read/write memory storesuch as a computer hard drive or a set of such hard drives configured ina RAID arrangement to permit good multi-streaming of data.Alternatively, or additionally, a computer apparatus connected to, andarranged to control access to, a dedicated video data store/data basesuch as an array of video recording devices (e.g. DVD or video cassettemachines etc) of either digital or analogue recording format may beused. Digital to analogue conversion means (e.g. software) may beemployed where analogue storage formats are employed so as to enable thestored analogue data to be digitised prior to network transmissionthereof, and to enable captured video data received via the network indigital format to be made analogue in format for storage.

The video replay node apparatus may comprise any suitable means forreceiving digital video data and for rendering video images (and soundwhere appropriate) therefrom. The apparatus may comprise a computermeans, such as a personal computer, for receiving digital image datafrom the network communications means and for presenting the videoimages (and sound where appropriate) rendered from received data upon avisual display means controlled by that computer. Examples of suitablevisual display means are:

the visual display unit (VDU) of a PC;

a TV monitor controlled by the computer means of a node;

image projection apparatus controlled by the computer of the node. Otherexamples, such as would be readily apparent to the skilled person, mayalso be employed.

The central network control application may run on a standard Windows2000 PC. However, Windows XP or derivatives thereof may be used, indeedany suitable software such as would be readily apparent to the skilledperson may be employed. This can be run on any of the machines that arenetworked as part of the network node apparatus. Usually it is run onthe machine acting as the server, as it has best network response, butthis is not essential. The network diagnostic application may also berun on any Windows 2000 (or other) PC.

The network communications apparatus may be any suitable apparatus suchas would be readily apparent to the skilled person. The apparatus may beof a bus, star or ring topology being either wire-based orwireless-based (or a mixture of both). The network communicationsapparatus may provide a local area network (LAN) or a wide area network(WAN) and may be an internet comprising several or many interconnectedlocal or wide area networks.

FIG. 2 Schematically illustrates the implementation of the video captureapplication (2) and the video storage aspect of the video storageapplication (3) in respect of captured video data (i.e. audio visualimage data in this case).

Video image data (21) and associated video sound data (22) are capturedby a data capture filter software application (23) from any number of aselected number of data capture channels available to the video capturenode. Selection of data capture channels is made by the user at the hostcomputer (6) and the selection is communicated to the video capture nodevia the network communications apparatus (8) and the central networkcontrol application (7). Selection of a given data channel may instigategeneration of contemporaneous digital video data at the video capturenode (e.g. cause a video camera to operate) or may simply permitexisting digital video data to be input to the capture filter (23). Theselected video data is passed from the capture filter to a compressionsoftware application which compresses the received video data (image andsound) according to any suitable data compression algorithm such aswould be readily apparent to the skilled person. Compressed audio-visualdata is subsequently passed to a transmit filter software application(25) containing a transmit buffer software application (26) whichtemporarily retains, on a frame-by-frame basis, audio-visual datareceived thereby. The transmit buffer application provides a FIFO(first-in-first-out) buffer function thereby forming a queue of bufferedvideo frames (image frames and associated sound frame data) eachawaiting its turn to be transmitted from the video capture node (2) bythe transmit filter application via a network socket connection (27)connecting the video capture node to the network communicationsapparatus (8).

Video frames are transmitted by the transmit filter (25) of the videocapture node, using an IP (Internet Protocol) transmission protocol,addressed to the video storage node (3) of the network. Video frames arereceived by the video storage node at a network socket connection (29)thereof whereupon the received frames are passed to a receive filtersoftware application (30).

The receive filter application contains a receive buffer softwareapplication (31) which temporarily retains, on a frame-by-frame basis,the audio visual frame data received thereby. The receive bufferapplication provides a FIFO buffer function thereby forming a queue ofbuffered audio visual data frames each awaiting its turn to be stored bythe video storage node. A file writer software application (32) controlsthe physical storage of audio visual video data temporarily retained inthe receive buffer by reading a new frame of video data from that bufferonly when the video storage apparatus (33) of the video storage node isready to receive and save more video data—i.e. the file writerapplication (32) regulates the rate of demand of video data at thestorage node (3) according to the rate of data storage sustainable bythe video storage apparatus (33). This storage apparatus is, in thisexample, a computer disc storage apparatus such as a hard drive or setof hard drives arranged as a RAID (alternatively, a read-write DVDdatabase may be used).

Video storage application (3) includes a transmission control softwareapplication arranged to detect when the content value of the receivebuffer application (31) exceeds a predetermined upper content value(e.g. when the buffer becomes completely full), and to communicate thisfact to the video capture application (2) via the network (8). Similarlythe video capture application (2) includes a transmission controlsoftware application arranged to receive such transmission controlsignals from the video storage node and also to detect when the contentof the transmit buffer of the video capture node reaches a predeterminedlower content value (e.g. when the transmit buffer becomes completelyempty). The transmission control apparatus of the video capture node isfurther arranged to prevent further transmission of video data framesfrom the transmit filter (25) when either of the aforementioned bufferconditions arises. Accordingly, the receive filter application (30) ofthe video storage node communicates, via the network, with the transmitfilter application (25) of the video capture node so as to ensure thatthe transmit filter transmits video frame data to video storage nodeonly while the content of the transmit buffer exceeds a given lowercontent level and the receive buffer does not exceed a given uppercontent level. When transmission does occur, it occurs at the maximumdata transmission rate supported by the communications network apparatus(8). Where this is an Ethernet network apparatus, such transmission mayoccur at data rates of up to about 1 Gigabit/sec.

FIG. 3 schematically illustrates the implementation of the video replayapplication (4) and the video retrieval aspect of the video storageapplication (3) in respect of stored audio visual video data retrievedfrom storage at the video storage node.

User commands input at the host computer application (6) are received bya file reader application of the video storage node and are passed to afile reader filter (34). In response to the received user commands, thefile reader filter software application retrieves from the video storageapparatus (33) audio visual video data selected by the user. The filereader filter application passes selected video data to a time-stampfilter software application (35) which applies an appropriate time-stampto video data received thereby according to a selected video frame rateat which video frames are to be rendered at the video replay node.Time-stamped video data is passed from the time-stamp filter softwareapplication (35) to a transmit filter application (36) containing atransmit for software application (37) which temporarily retains, on aframe-by-frame basis, audio visual data received thereby. The transmitbuffer application provides a FIFO buffer function thereby forming aqueue of buffered video frames each awaiting its turn to be transmittedfrom the video storage node (3) by the transmit filter application froma network socket connection (38) connecting the video storage node tothe network communications apparatus (8). Video frames are transmittedby the transmit filter (36) addressed to the video replay node (4) usingan IP transmission protocol. These transmitted video frames are receivedat the video replay node (4) at a network socket connection (39)thereof, whereupon they pass to a receive filter software application(40). This receive filter application contains a receive buffer softwareapplication (41) which temporarily retains, on a frame-by-frame basis,audio visual data received thereby. The receive buffer applicationprovides a FIFO buffer function thereby forming a queue of bufferedvideo frames each awaiting its turn to be rendered at the video image(and sound) rendering means of the video replay node. Video frame datais taken from the receive buffer (41) of a video replay node only whenthe image/sound rendering apparatus of that node is ready to acceptanother frame from the buffer. When this condition arises, the videoframe data at the head of the receive buffer is passed to a datadecompressor software application (42) whereupon the compression appliedat the data compression software application (24) of the video capturenode (2) is reversed. Subsequent to decompression, a decompressed videodata frame is passed to video rendering apparatus (43) whereupon a videoimage, and any associated video sound, is rendered as audio-visualoutput (44).

The transmit filter application (36) of the video storage node isarranged to transmit video data frames from the transmit buffer (37)thereof only while the content of that transmit buffer exceeds apredetermined lower content value (e.g. while the buffer is other thanempty), and only while the content of the receive buffer (41) of thereceive filter application (40) of the video replay node does not exceeda predetermined upper content value (e.g. it is not completely full).This is achieved by providing the video replay node with a transmissioncontrol stored application arranged to detect when the content value ofthe receive buffer (41) thereof exceeds the predetermined upper contentvalue in question, and to communicate such detection via the networkapparatus (8) to the video storage node. In conjunction with this thevideo storage node is provided with a transmission control softwareapplication arranged to receive such transmission control signalsemanating from the video replay node, and to detect when the contentvalue of the transmit buffer (37) of the video storage node does notexceed the aforementioned predetermined lower content value. Thetransmission control software application of the video storage node isfurther arranged to prevent video data transmission from the transmitfilter (36) thereof when either of these two buffer content conditionsoccurs.

Transmission of video frame data, and of transmission control signals,between the video storage node and the video replay node occurs at themaximum data transmission rate supported by the network communicationmeans (8).

The predetermined content value of the receive buffers of both the videostorage node (31) and the video replay node (41) corresponds to thecontent of the respective buffer when a predetermined portion of thebuffer capacity remains unused. This predetermined portion is sufficientto contain video data transmitted thereto by a transmit buffer (26 or37) during the interval of time between communication of the firstdetection signal (from the given received buffer to the correspondingtransmit buffer) and subsequent prevention of transmission of video databy the corresponding transmit buffer in response to the first detectionsignal. The transmit control means of either (or each) of the videocapture node and the video storage node is operable to prevent videodata transmission therefrom to the video storage or video replay noderespectively, in response to receipt of a first detection signal aftercompletion of the transmission of video data corresponding to a wholevideo frame if transmission of such data commenced before receipt of thefirst detection signal. This prevents incomplete transmission of videoframes. The predetermined portion may be equal to twice the product of:the rate of video data transmission across the network; and, theduration of a whole video frame at the video renderer of the videoreplay node.

The determination of the upper content value is based on the rate ofconsumption (e.g. one frame in 33.3 ms) and the rate of transmission(e.g. 10M bytes/sec), plus delays in preventing the transmission ofvideo data from the transmit buffer.

e.g. 10M*0.033=amount of data that can be transmitted in one frame=346K.

However as there could be a frame being transmitted when a firstdetection signal is received at the transmit node and one wishes totransmit all of that frame, then one requires that the upper contentvalue equal 692K (i.e. twice 346K). To ensure good uninterrupted videorendering, buffers with a capacity to store video data corresponding toof 5 to 10 second of video rendering are generally used. Buffers of 4Mbytes to 10M bytes in size are used with upper content values set at 1Mbyte from the top (i.e. 1M byte below full). This may be varied ofcourse.

The video replay node software application includes a video replayselection software application arranged for selecting, when implemented,the video frame rate of video frames to be rendered by the renderingapparatus of the video replay node, and for transmitting that selectionto the time-stamp filter application (35) of the video storage node viathe network (8). Accordingly, the time-stamp filter application (35) atthe video storage node is arranged to apply a time-stamp to video dataframes passed to it by the file reader filter application (34) accordingto the selected video frame rate. The time-stamp applied to each videodata frame in this way is selected by the time-stamp filter such thatvideo images (and associated sound) rendered by the video replay nodeusing video data frames containing such time-stamps are rendered at theselected video frame rate. For example, fast-forward, slow-forward,pause and other such video frame rates may be implemented via thistechnique. Video frame rates from 0.01 to 100.0 are possible forexample. This is because, while video data frames may be generated in apredetermined temporal sequence (i.e. with a predetermined temporalframe separation), this predetermined inter-frame temporal relationshipis only preserved during frame storage by applying an appropriate timestamp to each frame indicating the temporal separation betweensuccessive frames. According to the present invention this inter-frametemporal relationship may be modified by modifying the time-stampexisting in each stored video frame, or by applying a new time-stampthereto, in such a way as to increase or reduce the inter-frame temporalspacing. Consequently, upon rendering of such modified frames, the rateof frame rendering is correspondingly increased or reduced.

The timestamp filter manipulates each frames time stamp to provide theRenderer with a continuous flow of frames in time. If the replay rate isincreased the number of frames per second is kept the same as at normalrate but the frames which are passed to the Renderer are not inconsecutive order e.g.

Normal rate

Frame No 0 1 2 3 4 5 6 7 8 9 . . . etc

2× Rate

Frame No 0 2 4 6 8 . . . etc

4× Rate

Frame No 0 4 8 . . . etc

The time stamp filter then recalculates the time that the Render shoulddisplay the frame so that it maintains the required rate e.g.

2× Rate

Frame No 0 2 4 6 8 . . . etc

Time stamp ms 0.0 33.33 66.66 99.99 133.33

When the video is required to run slower each frame is read but the timestamp on each frame is divided by the rate so;

½ Rate

Frame No 0 1 2 3 4 . . . etc

Time stamp ms 0.0 66.66 133.33 200.0 266.66

To allow “odd” frame values the file reader reads frames by “frame”counting in a sequence of a 100 frames. The extracted frames then havetheir timestamps recalculated as above in the time stamp filter. Thisallows Rates from 1/100 Rate to 100× Rate.

The time stamp filter is also used in conjunction with the file readerto allow frame decimation. This allows the number of frames beingtransmitted to be reduced to fit into the available bandwidth e.g.

50% frame decimation

Frame No 0 2 4 6 8 . . . etc

Time stamp ms 0.0 66.66 133.33 200.0 266.66

The correct frame is played at the correct time but the intermediateframes are skipped. It is legitimate to have both Rate change and framedecimation so,

50% frame decimation, 2× Rate

Frame No 0 2 4 6 8 . . . etc

Time stamp ms 0.0 133.33 266.66 400.0 533.55

A load management module L (450) is operable to vary the load on thesystem, with the aim of reducing the number of frames being transmittedover the network to the maximum data transmission rate supported by thenetwork and to the maximum rate at which video frames can be rendered atthe replay node. This is achieved by the use of a data flow controlsoftware application contained in both the video storage node 3 and thevideo replay node 4. This is achieved by producing a frame decimationcontrol signal 460 at the load management module 450 for input to thefile reader application (34) in order to affect frame decimation asdiscussed above by skipping intermediate time-stamps and respectiveintermediate frames within a given video sequence at the time-stampfilter application (35).

If the video renderer fails to render all of the frames sent to it thenthat only has the transmission time being wasted, but the renderer hasbeen prevented from rendering frames by the necessity of receivingframes it cannot render. The data flow control means is operable togather at the video replay node the contemporaneous rate of framerendering thereat and the content of the receive buffer means thereof,and to transmit the gathered information to the video storage node (3).The data flow control software application at the video storage node isoperable to reduce or increase the proportion of frames to be selectedthrough decimation via the file reader software application (34) and thetime-stamp filter application (35) from within a sequence of videoframes to be transmitted to the video replay node. The degree ofdecimation is chosen according to the gathered information from thevideo replay node. The data flow control means at the video storage node(i.e. the load management module L) is operable to periodically increasethe proportion of frames to be selected from a sequence of frames to betransmitted to the video replay node (i.e. by periodically reducing thedegree of frame decimation) until the content value of the receivebuffer of the video replay node exceeds a given content valuerepresented by the “High Marker” (600) illustrated in FIG. 6. The dataflow control software application at the video replay node is operableto gather and transmit the aforesaid contemporaneous data when thecontent value of its receive buffer (41) exceeds the “High Marker”content value (600), the data flow control means of the video storagenode (3) being responsive to receipt of such gathered information so asto increase the frame decimation rate of the video sequence to betransmitted thereby to reduce the proportion of frames thereof beingtransmitted. Thus a steady decrease in frame decimation rates at thevideo storage node is punctuated by data flow control signals (800) fromthe video replay application (4) to the video storage node (3) wheneverthe content of the receive buffer (41) exceeds the “High Marker” contentlevel with the result that frame decimation rates are increased inresponse thereto. An increase in frame decimation rates results in aslower “top-up” of the receive buffer (41) thereby allowing the videorenderer of the video replay node to deplete the receive buffer to adegree sufficient to reduce the content value thereof below the “HighMarker” value. A steady decrease in frame decimation rates follows eachof the periodic increases in decimation rates thereby ensuring that thedata flow rate across the network is periodically updated to cause thecontent level of the receive buffer (41) of the replay node (4) tohover/fluctuate around the High Marker content value.

In the event that the content value of the receive buffer (41) fallsbelow the “Low Marker” content level (700) then the data flow controlmeans is operable to transmit a control message (800) across the networkcommunications means to the load management module L in response towhich a frame decimation control signal (460) is generated to decreaseframe decimation rates thereby increasing the rate of data transmittedto the receive buffer (41) of the video replay node. Four factors aretaken into account when calculating new frame decimation rates (andtherefore new data transmission rates) as illustrated in FIG. 7. Thedata flow control software application (“Flow Controller”) gathers thefollowing information:

the “Quality” of rendered video as selected by the user (i.e. a choiceof frame decimation rate); the “File Frame Rate”, being the frame rateof captured video data;

the “Playback Rate” of frames rendered at the renderer of the videoreplay node; and, the current content level of the receive buffer (41)of the video replay node. This information is gathered by the data flowcontrol software application and input to the load management module(450) which calculates a new rate of data transmission based on thisinformation and also a frame decimation control signal (460) via whichto put effect to the new calculated data transmission rate. The dataflow control software application at the video replay node gathers therenderer frame rate and the receive buffer content level and transmitsthat data to the load management module (450). When such gatheredinformation is not being sent from the video replay node, the framedecimation rate is reduced continuously at a rate much slower than therate of increase in frame decimation which results when the contentlevel of the receive buffer (41) of the video replay node exceeds theHigh Marker level. This rapid rate of increase in frame decimation istypically ten times greater than the rate of subsequent decrease inframe decimation rates. This also allows for a slow network connectionto be used by dropping the quality factor of rendered video data byincreasing frame decimation rates. The data flow control means achievesthis by monitoring the content value of the receive buffer (41) of thevideo replay node as follows. If the content level thereof exceeds theHigher Marker value, then a flow control signal is transmitted from thevideo replay node to the video storage node to increase frame decimationrates thereat. Conversely, if the buffer content value is lower than theLow Marker value then a flow control signal is transmitted to the videostorage node to reduce frame decimation rates thereby increasing therate of transmission of data to the receive buffer (41). All framedecimation rate updates may be operated at the end of a predeterminednumber of transmitted video frames (e.g. every 100 frames). This has thebenefit of stopping unnecessary changes that are the result on transientchanges in the rendering rate.

FIG. 4 illustrates an example of the present invention in which thenetwork node apparatus is arranged together with a networkcommunications apparatus (8) in the form of a star network comprising anetwork switching hub apparatus (47). FIG. 4 also illustrates,schematically an example of the physical separation of network nodespermissible according to the present invention. The network hubapparatus (47), the computer (7) implementing the central networkcontrol application and providing the storage facility for video data, afirst video capture node comprising a personal computer (46), a videoreplay node also comprising a personal computer (49), and a flightvisual computer system (6) comprising a personal computer (forgenerating video display graphics) are each located in a “computerroom”. All other nodes of the network are located in a physicallyseparate “theatre” room and include:

a second video capture node (45) comprising a personal computerconnected to a PAL video camera via a video capture card; a hostcomputer with a user interface means (48) comprising a personal computeroperable to enable the user to control the network as a whole (e.g. thevideo storage and replay nodes at least); and, a second video replaynode (50) also comprising a personal computer. Furthermore, the firstvideo replay node (49) located in the computer room and the second videoreplay node (50) located in the theatre room are each arranged tocontrol respective image projection apparatus (54 and 52 respectively)each of which is located within the theatre room, using suitableprojector control signals (53 and 51 respectively) generated by therespective video replay nodes according to video data received thereatfrom the video storage node (7) located in the computer room. The firstvideo capture node (46) is arranged to receive video data from a node(6) which is in the form of a PC arranged to generate real-time visualdisplay graphics of high resolution component video at 1280×1024 at 60Hz. The video is captured at a high frequency capture card in the firstcapture node (46).

FIG. 5 illustrates a mixed network topology in which separate videocapture nodes (2) and video replay nodes (3) are provided in the form ofseparate personal computer apparatus forming a star topology about acommon network switching hub (62). Each such star network has adedicated central (star) network control application and video storage(61). Four such star network topologies are illustrated in FIG. 5 andeach is connected to a main Gigabit network backbone (8) to which arealso connected two separate star networks each comprising a dedicatednetwork switch hub (63) and three separate video replay nodes (64)connected thereto, each comprising a personal computer with a visualdisplay unit attached thereto. Host computers, for controlling the useof the network apparatus are also connected to the Gigabit backbonenetwork (8) but are not shown in FIG. 5 for purposes of clarity.

The PC's (60) are each capable of both capturing and generating highresolution component video data up to 1280×1024 at 60 Hz. The capturedvideo is stored on the servers (61). The video capture applicationpasses captured video data through a video compressor and then on to atransmit filter software application where it is then sent to a server.At a server the received video is written to a disk video storage meansby a file writer software application.

Thus, a large network of node network apparatus, according to thepresent invention, may be provided comprising multiple video capture,video storage and video replay applications spread across multiplemachines. Video replay nodes may be distributed across a LAN and a WAN.Software compression and decompression the video capture and videoreplay nodes may be implemented using software compression anddecompression instead of hardware thereby allowing flexibility inmatching compression and decompression methods to video contents.General-purpose hardware may be used to implement any of the softwareapplications of the present invention thereby allowing greaterflexibility and reducing the need to employ bespoke hardware. Inparticular, the network-based architecture of the video capture, videostorage and video replay applications, and also of the networkdiagnostics and central control applications, allows computational loadto be spread across the network thereby reducing the load required ofeach node apparatus and consequently enabling higher video datatransmission rates to be employed. The use of buffering, according tothe present invention, as between video capture, video storage, andvideo replay applications decouples the synchronous capture and replayelements and allows an asynchronous application of the components acrossgeneral-purpose computer networks that would otherwise introduceintermittent data delays and the consequent “frame jitter” that results.

The network node apparatus according to any aspect of the presentinvention may be designed for high fidelity recording and replay ofvideo and sound. The video data may comprise any of the following signaltypes in any mix: high-frequency, component video up to 1600×1200 at 60Hz in 24 bit or 16 bit RGB and 8 bit Monochrome Composite Colour;S-Video PAL or NTSC in 24 bit, or 16 bit RGB and 8 bit Monochrome andSound using standard PC or microphone inputs. The network nodeapparatus, in any aspect of the invention, may utilise standardcommercial PC workstations and servers thereby making the systemflexible and expandable. Any of the software applications referred toabove may be executed on any Windows 2000 based PC (Windows XP,derivatives thereof or any suitable software, such as would be readilyapparent to the skilled person, may be employed).

It is to be understood that modifications or variations of theembodiments described hereinabove, such as would be readily available tothe skilled person, may be made without departing from the scope of thepresent invention.

1. Network node apparatus for the storage and replay of video data atseparate respective nodes of a communications network means arranged tooperably couple the node apparatus wherein the node apparatus comprises:a video storage node arranged to store video data, and to transmitstored data via the communications network means; a video replay nodearranged to receive via the communications network means video datatransmitted by the video storage node, and to render an image therefrom;wherein the video storage node has transmit buffer means for temporarilyretaining stored video data, and the video replay node has a receivebuffer means for temporarily retaining said video data received thereby,the video storage node being operable to transmit video data to thevideo replay node only if the content of the transmit buffer meansmatches or exceeds a predetermined lower content value and the contentof the receive buffer means does not exceed a predetermined uppercontent value.
 2. The network node apparatus according to claim 1wherein: the video storage node is arranged to transmit data temporarilystored in the transmit buffer thereof at the maximum data transmissionrate supported by the communications network means.
 3. The network nodeapparatus according to claim 1 further including: an video capture nodefor capturing video data representing an image, and arranged to transmitsuch video data via the communications network means to the videostorage means, wherein the video storage node is arranged to receivesaid video data transmitted from the video capture node for said storagethereof.
 4. The network node apparatus according to claim 3 wherein: thevideo capture node has a transmit buffer means for temporarily retainingsaid captured video data and the video storage node has a receive buffermeans for temporarily retaining video data received thereby, the videocapture node being operable to transmit video data to the video storagenode only if the content of transmit buffer means thereof matches orexceeds a predetermined lower content level and the content of thereceive buffer means of the video storage node does not exceed apredetermined upper content level.
 5. The network node apparatusaccording to claim 4 wherein: the video capture node is arranged totransmit data temporarily retained in the transmit buffer thereof at themaximum data transmission rate supported by the communications networkmeans.
 6. The network node apparatus according to claim 1, wherein thepredetermined upper content value corresponds to the content of therespective receive buffer when full.
 7. The network node apparatusaccording to claim 1 wherein the predetermined lower content valuecorresponds to the content of the respective transmit buffer when empty.8. The network node apparatus according to claim 1, wherein: the videoreplay node includes transmission control means arranged to detect whenthe content value of the receive buffer thereof matches or exceeds thepredetermined upper content value and to communicate such detection viathe network to the video storage node as a first detection signal; and,the video storage node includes transmission control means arranged toreceive first detection data from the video replay node, to generate asecond detection signal when the content value of the transmit bufferthereof does not exceed the predetermined lower content value, and toprevent video data transmission from the video storage node to the videoreplay node in response to either receipt of the first detection signalor in response to generation of the second detection signal.
 9. Thenetwork node apparatus according to claim 3 wherein: the video storagenode includes transmission control means arranged to detect when thecontent value of the receive buffer thereof matches or exceeds thepredetermined upper content value and to communicate such detection viathe network to the video capture node as a first detection signal; and,the video capture node includes transmission control means arranged toreceive first detection data from the video storage node, to generate asecond detection signal when the content value of the transmit bufferthereof does not exceed the predetermined lower content value, and toprevent video data transmission from the video capture node to the videostorage node either in response to receipt of the first detection signalor in response to generation of the second detection signal.
 10. Thenetwork node apparatus according to claim 1, wherein the video replaynode includes video replay selection means for selecting the replay rateof video images to be rendered thereby and for conveying said selectionto the video storage node via the communications network, and whereinthe video storage node includes time-stamp control means for applying atime-stamp to video data stored therein according to the selected videoreplay rate, such that video images rendered by the video replay nodeusing video data with said time-stamp are rendered at the selected videoreplay rate.
 11. The network node apparatus according to claim 1,further comprising said communications network means.
 12. The network knode apparatus according to claim 1, further comprising saidcommunications network means wherein said communications network meansoperably couples the video storage node to the video replay node therebyplacing the video storage node in asynchronous communication with thevideo replay node.
 13. The network node apparatus according to claim 3further comprising the communications network means wherein thecommunications network means operably couples wherein the video capturenode to the video storage node thereby placing the video storage node inasynchronous communication with the video replay node.
 14. A method forthe storage and replay of video data at separate respective nodes of acommunications network means arranged to operably couple the nodeswherein the method includes the steps of: storing video data at a videostorage node; temporarily retaining said stored video data in a transmitbuffer of the video storage node; and subsequently; transmitting saidretained video data via the communications network means; receiving at avideo replay node the video data transmitted by the video storage node;temporarily retaining said received video data in a receive buffer meansof the video replay node; and subsequently; rendering an image at thevideo replay node using the received video data; wherein saidtransmission of video data from the video storage node to the videoreplay node occurs only if the content of the transmit buffer meansmatches or exceeds a predetermined lower content value and the contentof the receive buffer means does not exceed a predetermined uppercontent value.
 15. The method according to claim 14, wherein thetransmission of retained data from the storage node occurs at themaximum data transmission rate supported by the communications networkmeans.
 16. A method according to claim 14 further including capturing atan video capture node video data representing an image, transmittingcaptured video data via the communications network means to the videostorage means, receiving at the video storage node said captured videodata transmitted from the video capture node for said storage thereof.17. The method according to claim 16 including temporarily retainingcaptured video data in a transmit buffer means of the video capturenode, transmitting said retained video data via the communicationsnetwork, receiving at the video storage node said data transmitted bythe video capture node, temporarily retaining said received data in areceive buffer means of the video storage node, wherein the transmissionof video data from the video capture node to the video storage nodeoccurs only if the content of transmit buffer means thereof matches orexceeds a predetermined lower content level and the content of thereceive buffer means of the video storage node does not exceed apredetermined upper content level.
 18. The method according to claim 17wherein the transmission of the retained video data from the videocapture node occurs at the maximum transmission rate supported by thecommunications network means.
 19. The method according to claim 14wherein the predetermined upper content value corresponds to the contentof the receive buffer when full.
 20. The method according to claim 14,wherein the predetermined lower content value corresponds to the contentof the transmit buffer when empty.
 21. The method node apparatusaccording to claim 14 including: detecting at the video replay node whenthe content value of the receive buffer thereof matches or exceeds thepredetermined upper content value, and communicating such detection viathe network to the video storage node as a first detection signal; and,receiving at the video storage node first detection data from the videoreplay node, generating a second detection signal when the content valueof the transmit buffer thereof does not exceed the predetermined lowercontent value, and preventing video data transmission from the videostorage node to the video replay node either in response to receipt ofthe first detection signal or in response to generation of the seconddetection signal.
 22. The method according to claim 16 including:detecting at the video storage node when the content value of thereceive buffer thereof matches or exceeds the predetermined uppercontent value, and communicating such detection via the network to thevideo capture node as a first detection signal; and, receiving at thevideo capture node a first detection signal from the video storage node,generating a second detection signal when the content value of thetransmit buffer thereof does not exceed the predetermined lower contentvalue, and preventing video data transmission from the video capturenode to the video storage node either in response to receipt of thefirst detection signal or in response to generation of the seconddetection signal.
 23. The method according to claim 14 includingselecting at the video replay node the replay rate of video images to berendered thereby, communicating said selection to the video storage nodevia the communications network, and applying a time-stamp to video datastored in the video storage node according to said selection, such thatvideo images rendered by the video replay node using video data withsaid time-stamp are rendered at the selected video replay rate.
 24. Themethod according to claim 14 including asynchronously communicatingbetween said nodes of the communications network.
 25. A computer programincluding computer code for implementing a method according to claim 14.26. The computer program product containing a computer program accordingto claim
 25. 27. A computer network including a plurality of separatenetwork nodes each of which includes a computer programmed to implementcollectively a method according to claim 14 with a computer of one ormore other of said plurality of network nodes.
 28. The network nodeapparatus according to claim 1, wherein each said node is a computerseparate from any other said node.
 29. The network node apparatussubstantially as described in claim 1 embodiment hereinbefore withreference to the accompanying drawings.
 30. A method substantially asdescribed in claim 1 embodiment hereinbefore with reference to theaccompanying drawings.